/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package upeu.cepre.business;

import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import upeu.cepre.model.Trabajador;

import upeu.cepre.util.DataBaseConexion;

/**
 *
 * @author Elvis Zanguetsu
 */
public class TrabajadorManager {

    public Connection connection;

    public List<Trabajador> Report() {
        List<Trabajador> trabajadores = new ArrayList<Trabajador>();
        try {

            Connection connection;
            connection = DataBaseConexion.getConexion();

            Statement statement = connection.createStatement();

            ResultSet rs = statement.executeQuery("select * from trabajador");
            while (rs.next()) {

                Trabajador trabajador = new Trabajador();


                trabajador.setIdTrabajador(rs.getString("idTrabajador"));
                trabajador.setNombre(rs.getString("nombre"));
                trabajador.setApellidoPaterno(rs.getString("apellidoPaterno"));
                trabajador.setApellidoMaterno(rs.getString("apellidoMaterno"));
                trabajador.setDireccion(rs.getString("direccion"));
                trabajador.setDni(rs.getString("dni"));
                trabajador.setFechaNacimiento(rs.getString("fechaNacimiento"));
                trabajador.setTelefono(rs.getString("telefono"));
                trabajador.setUsuario(rs.getString("usuario"));
                trabajador.setContraseña(rs.getString("contraseña"));
                trabajador.setEstado(rs.getString("estado"));

                trabajadores.add(trabajador);

            }
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return trabajadores;
    }

    public Trabajador finByUser(String usuario) {
        Trabajador trabajador = new Trabajador();


        try {
            Connection connection;
            connection = DataBaseConexion.getConexion();
            PreparedStatement preparedStatement = connection.prepareStatement("select * from trabajador where usuario=?");
            preparedStatement.setString(1, usuario);
            ResultSet rs = preparedStatement.executeQuery();

            if (rs.next()) {
                trabajador.setIdTrabajador(rs.getString("idTrabajador"));
                trabajador.setNombre(rs.getString("nombre"));
                trabajador.setApellidoPaterno(rs.getString("apellidoPaterno"));
                trabajador.setApellidoMaterno(rs.getString("apellidoMaterno"));
                trabajador.setDireccion(rs.getString("direccion"));
                trabajador.setDni(rs.getString("dni"));
                trabajador.setFechaNacimiento(rs.getString("fechaNacimiento"));
                trabajador.setTelefono(rs.getString("telefono"));
                trabajador.setUsuario(rs.getString("usuario"));
                trabajador.setContraseña(rs.getString("contraseña"));
                trabajador.setEstado(rs.getString("estado"));

            }

            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return trabajador;
    }

    public Trabajador finById(String idTrabajador) {
        Trabajador trabajador = new Trabajador();


        try {
            Connection connection;
            connection = DataBaseConexion.getConexion();
            PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM trabajador WHERE  idTrabajador=?");
            preparedStatement.setString(1, idTrabajador);
            ResultSet rs = preparedStatement.executeQuery();

            if (rs.next()) {
                trabajador.setIdTrabajador(rs.getString("idTrabajador"));
                trabajador.setNombre(rs.getString("nombre"));
                trabajador.setApellidoPaterno(rs.getString("apellidoPaterno"));
                trabajador.setApellidoMaterno(rs.getString("apellidoMaterno"));
                trabajador.setDireccion(rs.getString("direccion"));
                trabajador.setDni(rs.getString("dni"));
                trabajador.setFechaNacimiento(rs.getString("fechaNacimiento"));
                trabajador.setTelefono(rs.getString("telefono"));
                trabajador.setUsuario(rs.getString("usuario"));
                trabajador.setContraseña(rs.getString("contraseña"));
                trabajador.setEstado(rs.getString("estado"));

            }

            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return trabajador;
    }

    public void Add(Trabajador trabajador) {
        try {
            connection = DataBaseConexion.getConexion();
            PreparedStatement preparedStatement =
                    connection.prepareStatement(
                    "INSERT INTO trabajador ( idTrabajador , nombre , apellidoPaterno , apellidoMaterno , fechaNacimiento , dni , direccion , telefono , usuario , contraseña , estado , sexo , estadoCivil , email , Nacionalidad )VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
            preparedStatement.setString(1, trabajador.getIdTrabajador());
            preparedStatement.setString(2, trabajador.getNombre());
            preparedStatement.setString(3, trabajador.getApellidoPaterno());
            preparedStatement.setString(4, trabajador.getApellidoMaterno());
            preparedStatement.setString(5, trabajador.getFechaNacimiento());
            preparedStatement.setString(6, trabajador.getDni());
            preparedStatement.setString(7, trabajador.getDireccion());
            preparedStatement.setString(8, trabajador.getTelefono());
            preparedStatement.setString(9, trabajador.getUsuario());
            preparedStatement.setString(10, trabajador.getContraseña());
            preparedStatement.setString(11, trabajador.getEstado());
            preparedStatement.setString(12, trabajador.getSexo());
            preparedStatement.setString(13, trabajador.getEstadoCivil());
            preparedStatement.setString(14, trabajador.getEmail());
            preparedStatement.setString(15, trabajador.getNacionalidad());
            preparedStatement.executeUpdate();
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public String ObtenerId() {

        java.util.Date ahora = new java.util.Date();
        SimpleDateFormat formateador = new SimpleDateFormat("ddMMyyyy");
        TrabajadorManager trabManager = new TrabajadorManager();
        int a = trabManager.Report().size();
        return formateador.format(ahora) + "Trabajador" + (a + 1);
    }
}
